16 research outputs found

    Python Programmers Have GPUs Too: Automatic Python Loop Parallelization with Staged Dependence Analysis

    Get PDF
    Python is a popular language for end-user software development in many application domains. End-users want to harness parallel compute resources effectively, by exploiting commodity manycore technology including GPUs. However, existing approaches to parallelism in Python are esoteric, and generally seem too complex for the typical end-user developer. We argue that implicit, or automatic, parallelization is the best way to deliver the benefits of manycore to end-users, since it avoids domain-specific languages, specialist libraries, complex annotations or restrictive language subsets. Auto-parallelization fits the Python philosophy, provides effective performance, and is convenient for non-expert developers. Despite being a dynamic language, we show that Python is a suitable target for auto-parallelization. In an empirical study of 3000+ open-source Python notebooks, we demonstrate that typical loop behaviour ‘in the wild’ is amenable to auto-parallelization. We show that staging the dependence analysis is an effective way to maximize performance. We apply classical dependence analysis techniques, then leverage the Python runtime’s rich introspection capabilities to resolve additional loop bounds and variable types in a just-in-time manner. The parallel loop nest code is then converted to CUDA kernels for GPU execution. We achieve orders of magnitude speedup over baseline interpreted execution and some speedup (up to 50x, although not consistently) over CPU JIT-compiled execution, across 12 loop-intensive standard benchmarks

    High Royds: an integrated, analytical approach for mapping the unmarked burials of a pauper cemetery

    No full text
    Applying geophysical techniques to detect and map the physical extent of individual unmarked graves proves difficult in many cases. The success of individual geophysical techniques for detecting unmarked graves may be due to a poor understanding of the nature of the graves themselves, the context in which they lie in, and temporal changes to the burial state. Given the unpredictability of these variables, it is surprising that grave prospection is often undertaken using only a single method. This paper presents a multi-methodological survey strategy for detecting unmarked burials and utilises an analytical approach for visualising and evaluating survey results

    Miscellaneous Toxic Factors

    No full text

    Multiple factors in the origin of the Cretaceous/Tertiary boundary: The role of environmental stress and Deccan Trap volcanism

    No full text

    ATLAS: Technical proposal for a general-purpose p p experiment at the Large Hadron Collider at CERN

    No full text

    ATLAS: technical proposal for a general-purpose p p experiment at the large hadron collider at CERN

    No full text

    ATLAS calorimeter performance

    No full text
    corecore